/**
 * js para el manejo del formulario de creación
 * @author Alex Yépez <ayepez@tradesystem.com.ec>
 */
var selectedValues = {};
var inputCheckboxElement = [];
var url = 'campanias/campaniaClientesOwner/createGrupoCampania';
var tab = 'grupo';
$(function() {

    loadActionSelect();
//    tabs();

});
function loadActionSelect() {
    inputCheckboxElement['checkAll'] = $("input[type='checkbox']#selectall");
    inputCheckboxElement['checkRaw'] = $("input[type='checkbox'].ckeckRow");
    inputCheckboxElement.checkRaw.change(function() {
        selectRow($(this).attr('id'), $(this).attr('container'));
    });
    inputCheckboxElement.checkAll.change(function() {
        $contenedorAll = $(this).attr('container');
        if ($(this).is(':checked'))
        {
            $("input[container='" + $contenedorAll + "'].ckeckRow").prop('checked', true);
        }
        else
        {
            $("input[container='" + $contenedorAll + "'].ckeckRow").prop('checked', false);
        }
        $.each(inputCheckboxElement.checkRaw, function() {
            if ($contenedorAll == $(this).attr('container'))
            {
                selectRow($(this).attr('id'), $(this).attr('container'));

            }
        });
    });
}
function updateCheckedRaw(container) {
    if (selectedValues[container])
    {
        $.each(selectedValues[container], function(index, value) {

            var check_row = $('input[container="' + container + '"]#ckb_' + value);
            if (check_row)
            {
                check_row.prop('checked', true);
                check_row.parent().parent().addClass('selected');
            }
        });
    }
}
function selectRow(element, contenedor)
{
//    console.log(contenedor);
    if (!selectedValues[contenedor])
    {
        console.log(selectedValues);
        selectedValues[contenedor] = [];
    }
    if ($('input#' + element).is(':checked'))
    {
        $('input#' + element).parent().parent().addClass('selected');
        selectedValues[contenedor].push($('input#' + element).val());
    }
    else
    {
        $('input#' + element).parent().parent().removeClass('selected');
        deleteElemen(selectedValues[contenedor], $('input#' + element).val());
    }


}
function deleteElemen(contenerArray, val) {
    $.each(contenerArray, function(index, value) {
        if (val == value)
        {
            contenerArray.splice(index, 1);
        }
    });
}
function ActualizarInformacionAccion(Listas)
{
    for (var i = 0; i < Listas.length; i++)
    {
        $.fn.yiiGridView.update(Listas[i]);
    }
}
function activarGrid(e) {
    console.log(selectedValues);
    selectedValues = {};
    $('input[name="allClient_toggle"]').prop("checked", e);
    if (e) {//grupo
        tab = 'grupo';
        $('input[container="Gruposcuenta"]').prop("checked", false);
        $('input[container="Gruposcontacto"]').prop("checked", false);
        $('#cuenta').fadeOut(001); //ocultar
        $('#grupo').fadeIn('slow'); //mostrar
        url = 'campanias/campaniaClientesOwner/createGrupoCampania';
    } else {//contacto
        tab = 'contacto';
        $('#cuenta').removeClass('hidden'); //ocultar
        $('input[container="Cuentas"]').prop("checked", false);
        $('#grupo').fadeOut(001); //ocultar
        $('#cuenta').fadeIn('slow'); //mostrar
        url = 'campanias/campaniaClientesOwner/createContactoCampania';
    }
}
/**
 * Comment
 */


/********************************funciones Ajax*******************************/
function ajaxAgregar() {
    console.log(selectedValues);
    var json = toJSON(selectedValues);
    if (!(isEmptyJSON(json)))
    {
//        console.log(json);
        $.ajax({
            type: 'POST',
            url: baseUrl + url,
            dataType: 'json',
            data: {Campania: {
                    selecteds: selectedValues,
                    id_campania: entidad_id}
            },
            success: function(data, textStatus, jqXHR) {
                if (data.success)
                {
                    $("#mainModal").modal("hide");

                    ActualizarInformacion('#camapania-grid');
                    /**
                     * @autor Armando Maldonado <amaldonado@tradesystem.com.ec>
                     * Ejecuto estas condiciones para remover los hidden a los div que contien 
                     * al widget de busqueda y tambien al grid de cuentas en el view de campania
                     */
                    if ($('div.grid').hasClass('hidden')) {
                        $('div.grid').removeClass('hidden');
                    }
                    if ($('#icon-briefcase').hasClass('empty-portlet')) {
                        $('#icon-briefcase').removeClass('empty-portlet');
                        $('#icon-briefcase>i').removeClass('icon-user');
                        $('#icon-briefcase>br').remove();
                        $('#icon-briefcase>i').addClass('icon-plus-sign');
                    }
                    /**
                     * Fin
                     */
                }
                else {
//                    $("#mainModal").modal('hide');
                    bootbox.alert('Error al agregar los usuarios');
                }
            }
        });
    }
    else
    {
        bootbox.alert('selecione por o menos un usuario');
    }
}

function  toJSON(array) {
    var stringJSON = '';
    $.each(array, function(index1, value1) {
        stringJSON = stringJSON + '"' + index1 + '"' + ':{';

        $.each(value1, function(index, value) {
            stringJSON = stringJSON + '"' + index + '"' + ':' + value;
            if (index < value1.length - 1) {
                stringJSON = stringJSON + ',';
            }
        });
        stringJSON = stringJSON + '},';
    });
    stringJSON = stringJSON.substring(0, stringJSON.length - 1);
    stringJSON = '{' + stringJSON + '}';
//
    return $.parseJSON(stringJSON);

}

function isEmptyJSON(obj) {
    var empty = true;
    $.each(obj, function(index, value) {
//        console.log(index, value);
        for (var i in value) {
            empty = empty && false;
        }
    });
    return empty;
}

    